A storage area network (SAN) may be implemented as a high-speed, special purpose network that interconnects different kinds of data storage devices with associated data servers on behalf of a large network of users. Typically, a SAN is part of the overall network of computing resources for an enterprise. SAN switch products are an integral part of the network providing switching/routing functionality to connect the disparate devices on the network such that data frames sent between the devices travel an efficient route across the network.
SAN switches generally receive data frames at ports of the switch (referred to as source or ingress ports for a given port-to-port path) and forward the data frames to appropriate other ports of the switch (referred to as destination or egress ports for a given port-to-port path) to assist in routing the data frame from a source device in the SAN (e.g., a storage device designated by a source identifier or SID) to a destination device in the SAN (e.g., a server designated by a destination identifier or DID). In some implementations, a CAM is used to forward such data frames from individual source ports in a switch to appropriate destination ports in the switch. In one view, therefore, the CAM provides the functionality of a forwarding database. For example, the switch can extract a DID from the header of a received data frame and use the DID to “look up” (in the CAM) the appropriate destination port through which to transmit the data frame.
However, CAM devices are expensive, particularly as they increase in capacity, and therefore a traditional CAM structure does not economically scale to handle the growing size and complexity of modern and future SANs. For example, previous SANs have required that a CAM map thousands of addresses in a 24-bit address space, whereas current and future SAN architectures will map millions of address combinations (e.g., source and destination addresses, etc.) in a 48-bit address space, at a minimum, to accommodate modem routing, zoning, and load balancing requirements. Therefore, as SAN architectures continue to scale upwards in size and complexity, addressing requirements are expected to exceed the capacity of a single affordable CAM device.